package io.eleKing.boot.weather.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.baomidou.mybatisplus.annotation.*;
import io.eleKing.boot.system.entity.BaseEntity;

import java.util.Date;

/**
 * 
 *
 * @author eleKing
 * @since 2025-04-15
 */
@Data
@TableName("weather_real_data")
@EqualsAndHashCode(callSuper = true)
public class WeatherRealData extends BaseEntity {

    private static final long serialVersionUID = 1L;
    protected Integer stationLevel;
    private String district;
    private String stationId;
    private Integer regionStation;
    /**
     * 数据时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date dataTime;

    /**
     * 年
     */
    private Integer year;

    /**
     * 月
     */
    private Integer month;

    /**
     * 日
     */
    private Integer day;

    /**
     * 时
     */
    private Integer hour;

    /**
     * 分
     */
    private Integer minute;

    /**
     * 气压
     */
    private Double prs;

    /**
     * 海平面气压
     */
    private Double prsSea;

    /**
     * 1分钟平均风速风向
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Double windDirectAvg1mi;

    /**
     * 1分钟平均风速
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Double windSpeedAvg1mi;

    /**
     * 2分钟平均风速风向
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Double windDirectAvg2mi;

    /**
     * 2分钟平均风速
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Double windSpeedAvg2mi;

    /**
     * 10分钟平均风速风向
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Double windDirectAvg10mi;

    /**
     * 10分钟平均风速
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Double windSpeedAvg10mi;

    /**
     * 最大阵风风向
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Double windDirectGustMax;

    /**
     * 最大阵风风速
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Double windSpeedGustMax;

    /**
     * 瞬时风向(角度)
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Double windDirectInst;

    /**
     * 瞬时风速
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Double windSpeedInst;

    /**
     * 温度/气温
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Double tem;

    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Double temMax;

    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Double temMin;

    /**
     * 露点温度
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Double dpt;

    /**
     * 地面温度
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Double gst;

    /**
     * 草面(雪面)温度
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Double lgst;

    /**
     * 相对湿度
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Integer rhu;

    /**
     * 水汽压
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Double vap;

    /**
     * 降水量
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Double pre;

    /**
     * 积雪深度
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Double snowDepth;

    /**
     * 1分钟平均能见度
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Integer visAvg1mi;

    /**
     * 10分钟平均能见度
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Integer visAvg10mi;


}